home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / StandardFile.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  9.5 KB  |  250 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        StandardFile.mod
  3.  
  4.      Contains:    Standard File package Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$TAGS-*)
  21. (*$CALLING PASCAL*)
  22. MODULE StandardFile;
  23.  
  24. IMPORT SYSTEM, Types, Events, Dialogs, Files;
  25.  
  26. (* $PUSH*)
  27. (* $ALIGN MAC68K*)
  28. (* $LibExport+*)
  29.  
  30. CONST
  31. (* resource IDs and item offsets of pre-7.0 dialogs *)
  32.     putDlgID*                    = -3999;
  33.     putSave*                        = 1;
  34.     putCancel*                    = 2;
  35.     putEject*                    = 5;
  36.     putDrive*                    = 6;
  37.     putName*                        = 7;
  38.     getDlgID*                    = -4000;
  39.     getOpen*                        = 1;
  40.     getCancel*                    = 3;
  41.     getEject*                    = 5;
  42.     getDrive*                    = 6;
  43.     getNmList*                    = 7;
  44.     getScroll*                    = 8;
  45. (* resource IDs and item offsets of 7.0 dialogs *)
  46.     sfPutDialogID*                = -6043;
  47.     sfGetDialogID*                = -6042;
  48.     sfItemOpenButton*            = 1;
  49.     sfItemCancelButton*            = 2;
  50.     sfItemBalloonHelp*            = 3;
  51.     sfItemVolumeUser*            = 4;
  52.     sfItemEjectButton*            = 5;
  53.  
  54.     sfItemDesktopButton*            = 6;
  55.     sfItemFileListUser*            = 7;
  56.     sfItemPopUpMenuUser*            = 8;
  57.     sfItemDividerLinePict*        = 9;
  58.     sfItemFileNameTextEdit*        = 10;
  59.     sfItemPromptStaticText*        = 11;
  60.     sfItemNewFolderUser*            = 12;
  61. (* pseudo-item hits for use in DlgHook *)
  62.     sfHookFirstCall*                = -1;
  63.     sfHookCharOffset*            = $1000;
  64.     sfHookNullEvent*                = 100;
  65.     sfHookRebuildList*            = 101;
  66.     sfHookFolderPopUp*            = 102;
  67.     sfHookOpenFolder*            = 103;
  68. (* the following are only in system 7.0+ *)
  69.     sfHookOpenAlias*                = 104;
  70.     sfHookGoToDesktop*            = 105;
  71.     sfHookGoToAliasTarget*        = 106;
  72.     sfHookGoToParent*            = 107;
  73.     sfHookGoToNextDrive*            = 108;
  74.     sfHookGoToPrevDrive*            = 109;
  75.     sfHookChangeSelection*        = 110;
  76.  
  77.     sfHookSetActiveOffset*        = 200;
  78.     sfHookLastCall*                = -2;
  79.  
  80. (* the refcon field of the dialog record during a
  81.  modalfilter or dialoghook contains one of the following *)
  82.     sfMainDialogRefCon*            = LONG("stdf");
  83.     sfNewFolderDialogRefCon*        = LONG("nfdr");
  84.     sfReplaceDialogRefCon*        = LONG("rplc");
  85.     sfStatWarnDialogRefCon*        = LONG("stat");
  86.     sfLockWarnDialogRefCon*        = LONG("lock");
  87.     sfErrorDialogRefCon*            = LONG("err ");
  88.  
  89.  
  90. TYPE
  91.     SFReply* = RECORD
  92.         good*:                    BOOLEAN;
  93.         copy*:                    BOOLEAN;
  94.         fType*:                    Types.OSType;
  95.         vRefNum*:                INTEGER;
  96.         version*:                INTEGER;
  97.         fName*:                    Types.Str63;
  98.     END;
  99.  
  100.     StandardFileReply* = RECORD
  101.         sfGood*:                    BOOLEAN;
  102.         sfReplacing*:            BOOLEAN;
  103.         sfType*:                    Types.OSType;
  104.         sfFile*:                    Files.FSSpec;
  105.         sfScript*:                Types.ScriptCode;
  106.         sfFlags*:                INTEGER;
  107.         sfIsFolder*:                BOOLEAN;
  108.         sfIsVolume*:                BOOLEAN;
  109.         sfReserved1*:            LONGINT;
  110.         sfReserved2*:            INTEGER;
  111.     END;
  112.  
  113. (* for CustomXXXFile, ActivationOrderListPtr parameter is a pointer to an array of item numbers *)
  114.     ActivationOrderListPtr* = SYSTEM.PTR (*ΔΔ POINTER TO INTEGER*);
  115.  
  116. (* the following also include an extra parameter of "your data pointer" *)
  117.     DlgHookProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (item: INTEGER; theDialog: Dialogs.DialogPtr): INTEGER;
  118.     FileFilterProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (pb: Files.CInfoPBPtr): BOOLEAN;
  119.     DlgHookYDProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (item: INTEGER; theDialog: Dialogs.DialogPtr; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): INTEGER;
  120.     ModalFilterYDProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (theDialog: Dialogs.DialogPtr; VAR theEvent: Events.EventRecord; VAR itemHit: INTEGER; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): BOOLEAN;
  121.     FileFilterYDProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (pb: Files.CInfoPBPtr; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr): BOOLEAN;
  122.     ActivateYDProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (theDialog: Dialogs.DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr);
  123.     DlgHookUPP* = Types.UniversalProcPtr;
  124.     FileFilterUPP* = Types.UniversalProcPtr;
  125.     DlgHookYDUPP* = Types.UniversalProcPtr;
  126.     ModalFilterYDUPP* = Types.UniversalProcPtr;
  127.     FileFilterYDUPP* = Types.UniversalProcPtr;
  128.     ActivateYDUPP* = Types.UniversalProcPtr;
  129.  
  130. CONST
  131.     uppDlgHookProcInfo* = $000003A0; (* PROCEDURE (2 byte param, 4 byte param): 2 byte result; *)
  132.     uppFileFilterProcInfo* = $000000D0; (* PROCEDURE (4 byte param): 1 byte result; *)
  133.     uppDlgHookYDProcInfo* = $00000FA0; (* PROCEDURE (2 byte param, 4 byte param, 4 byte param): 2 byte result; *)
  134.     uppModalFilterYDProcInfo* = $00003FD0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param, 4 byte param): 1 byte result; *)
  135.     uppFileFilterYDProcInfo* = $000003D0; (* PROCEDURE (4 byte param, 4 byte param): 1 byte result; *)
  136.     uppActivateYDProcInfo* = $000036C0; (* PROCEDURE (4 byte param, 2 byte param, 1 byte param, 4 byte param); *)
  137.  
  138. PROCEDURE NewDlgHookProc*(userRoutine: DlgHookProcPtr): DlgHookUPP;
  139.     (*$IF NOT GENERATINGCFM *)
  140.     INLINE PASCAL $2E9F;
  141.     (*$END*)
  142.  
  143. PROCEDURE NewFileFilterProc*(userRoutine: FileFilterProcPtr): FileFilterUPP;
  144.     (*$IF NOT GENERATINGCFM *)
  145.     INLINE PASCAL $2E9F;
  146.     (*$END*)
  147.  
  148. PROCEDURE NewDlgHookYDProc*(userRoutine: DlgHookYDProcPtr): DlgHookYDUPP;
  149.     (*$IF NOT GENERATINGCFM *)
  150.     INLINE PASCAL $2E9F;
  151.     (*$END*)
  152.  
  153. PROCEDURE NewModalFilterYDProc*(userRoutine: ModalFilterYDProcPtr): ModalFilterYDUPP;
  154.     (*$IF NOT GENERATINGCFM *)
  155.     INLINE PASCAL $2E9F;
  156.     (*$END*)
  157.  
  158. PROCEDURE NewFileFilterYDProc*(userRoutine: FileFilterYDProcPtr): FileFilterYDUPP;
  159.     (*$IF NOT GENERATINGCFM *)
  160.     INLINE PASCAL $2E9F;
  161.     (*$END*)
  162.  
  163. PROCEDURE NewActivateYDProc*(userRoutine: ActivateYDProcPtr): ActivateYDUPP;
  164.     (*$IF NOT GENERATINGCFM *)
  165.     INLINE PASCAL $2E9F;
  166.     (*$END*)
  167.  
  168. PROCEDURE CallDlgHookProc*(item: INTEGER; theDialog: Dialogs.DialogPtr; userRoutine: DlgHookUPP): INTEGER;
  169.     (*$IF NOT GENERATINGCFM*)
  170.     INLINE PASCAL $205F, $4E90;
  171.     (*$END*)
  172.  
  173. PROCEDURE CallFileFilterProc*(pb: Files.CInfoPBPtr; userRoutine: FileFilterUPP): BOOLEAN;
  174.     (*$IF NOT GENERATINGCFM*)
  175.     INLINE PASCAL $205F, $4E90;
  176.     (*$END*)
  177.  
  178. PROCEDURE CallDlgHookYDProc*(item: INTEGER; theDialog: Dialogs.DialogPtr; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; userRoutine: DlgHookYDUPP): INTEGER;
  179.     (*$IF NOT GENERATINGCFM*)
  180.     INLINE PASCAL $205F, $4E90;
  181.     (*$END*)
  182.  
  183. PROCEDURE CallModalFilterYDProc*(theDialog: Dialogs.DialogPtr; VAR theEvent: Events.EventRecord; VAR itemHit: INTEGER; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; userRoutine: ModalFilterYDUPP): BOOLEAN;
  184.     (*$IF NOT GENERATINGCFM*)
  185.     INLINE PASCAL $205F, $4E90;
  186.     (*$END*)
  187.  
  188. PROCEDURE CallFileFilterYDProc*(pb: Files.CInfoPBPtr; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; userRoutine: FileFilterYDUPP): BOOLEAN;
  189.     (*$IF NOT GENERATINGCFM*)
  190.     INLINE PASCAL $205F, $4E90;
  191.     (*$END*)
  192.  
  193. PROCEDURE CallActivateYDProc*(theDialog: Dialogs.DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; userRoutine: ActivateYDUPP);
  194.     (*$IF NOT GENERATINGCFM*)
  195.     INLINE PASCAL $205F, $4E90;
  196.     (*$END*)
  197.     
  198. TYPE
  199.     SFTypeList* = ARRAY 4 (*ΔΔ[0..3]ΔΔ*) OF Types.OSType;
  200.  
  201. (*
  202.     The GetFile "typeList" parameter type has changed from "SFTypeList" to "ConstSFTypeListPtr".
  203.     For C, this will add "const" and make it an in-only parameter.
  204.     For Pascal, this will require client code to use the . operator, but make it easier to specify long lists.
  205.  
  206.     ConstSFTypeListPtr is a pointer to an array of OSTypes.
  207. *)
  208.     ConstSFTypeListPtr* = POINTER TO ARRAY OF Types.OSType;
  209.  
  210.  
  211. PROCEDURE SFPutFile*(where: Types.Point; prompt: Types.ConstStr255Param; origName: Types.ConstStr255Param; dlgHook: DlgHookUPP; VAR reply: SFReply);
  212.     (*$IF NOT GENERATINGCFM*)
  213.     INLINE PASCAL $3F3C, $0001, $A9EA;
  214.     (*$END*)
  215. PROCEDURE SFGetFile*(where: Types.Point; prompt: Types.ConstStr255Param; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply);
  216.     (*$IF NOT GENERATINGCFM*)
  217.     INLINE PASCAL $3F3C, $0002, $A9EA;
  218.     (*$END*)
  219. PROCEDURE SFPPutFile*(where: Types.Point; prompt: Types.ConstStr255Param; origName: Types.ConstStr255Param; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: Dialogs.ModalFilterUPP);
  220.     (*$IF NOT GENERATINGCFM*)
  221.     INLINE PASCAL $3F3C, $0003, $A9EA;
  222.     (*$END*)
  223. PROCEDURE SFPGetFile*(where: Types.Point; prompt: Types.ConstStr255Param; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: Dialogs.ModalFilterUPP);
  224.     (*$IF NOT GENERATINGCFM*)
  225.     INLINE PASCAL $3F3C, $0004, $A9EA;
  226.     (*$END*)
  227. PROCEDURE StandardPutFile*(prompt: Types.ConstStr255Param; defaultName: Types.ConstStr255Param; VAR reply: StandardFileReply);
  228.     (*$IF NOT GENERATINGCFM*)
  229.     INLINE PASCAL $3F3C, $0005, $A9EA;
  230.     (*$END*)
  231. PROCEDURE StandardGetFile*(fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply);
  232.     (*$IF NOT GENERATINGCFM*)
  233.     INLINE PASCAL $3F3C, $0006, $A9EA;
  234.     (*$END*)
  235. PROCEDURE CustomPutFile*(prompt: Types.ConstStr255Param; defaultName: Types.ConstStr255Param; VAR reply: StandardFileReply; dlgID: INTEGER; where: Types.Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr);
  236.     (*$IF NOT GENERATINGCFM*)
  237.     INLINE PASCAL $3F3C, $0007, $A9EA;
  238.     (*$END*)
  239. PROCEDURE CustomGetFile*(fileFilter: FileFilterYDUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply; dlgID: INTEGER; where: Types.Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr);
  240.     (*$IF NOT GENERATINGCFM*)
  241.     INLINE PASCAL $3F3C, $0008, $A9EA;
  242.     (*$END*)
  243. PROCEDURE StandardOpenDialog*(VAR reply: StandardFileReply): Types.OSErr;
  244.     EXTERNAL PASCAL;
  245.  
  246. (* $ALIGN RESET*)
  247. (* $POP*)
  248.  
  249.  END StandardFile.
  250.